#include <iostream>

using namespace std;

class vec3
{
	friend ostream &operator<< (ostream &, const vec3 &);

	public:
		float vx, vy, vz;		//coordinates
		vec3 (float x, float y, float z);	//constructor
		vec3 ();
		~vec3();					//deconstructor (probably dont' need)
		vec3 (const vec3 &);		//copy constructor
		vec3 &operator= (const vec3 &that);

		//vector3 operators
		vec3 operator+ (const vec3 &that) const;
		vec3 operator- (const vec3 &that) const;
		vec3 operator* (const float &that) const;	//coordinates * float
		vec3 operator/ (const float &that) const;	//coordinates / float
		
		vec3 cross (const vec3 &that) const;		//cross product might need work
		float dot (const vec3 &that) const;
		float cosdot (const vec3 &that) const;

		vec3 normalize() const;
		float length() const;			//applies distance formula to 0, 0;
		float distance(const vec3 &that) const;

		
		
};